int pulsante = 4; int LEDN = 10; //3; int LEDG = 11; //5; int LEDA = 12; //6; int LEDT = 13; //9; int LEDCAP = 7; // led capanna int ritardo = 50; //ritardo dissolvenze normale int ritardoL = 80; //Ritardo lento per dissolvenze int ritardoV = 35; //ritardo veloce per diissolvenze int ritardo1 = 20000; int ritardo2 = 32000; int statoPulsante = 0; int rele1 = 22; //2; //acqua e utenze sempre accese int rele2 = 24; //7; // statue sempre accese int rele3 = 26; //12; // statue diurne int rele4 = 28; //13; // case e notturne int Volume = 10; // volume audio #include #include SoftwareSerial mySerial (8, 9); // (10, 11); // RX, Tx void setup() { pinMode(LEDCAP, OUTPUT); pinMode(LEDN, OUTPUT); pinMode(LEDG, OUTPUT); pinMode(LEDA, OUTPUT); pinMode(LEDT, OUTPUT); pinMode(pulsante, INPUT); pinMode (rele1, OUTPUT); pinMode (rele2, OUTPUT); pinMode (rele3, OUTPUT); pinMode (rele4, OUTPUT); digitalWrite(rele1, HIGH); // ACQUA - i rel่ lavorano a sicurezza positiva per cui invece dello stato basso dichiaro alto digitalWrite(rele2, HIGH); // ANIMALI GROTTA digitalWrite(rele3, HIGH); // STATUE digitalWrite(rele4, HIGH); // CASE Serial.begin (9600); mySerial.begin (9600); mp3_set_serial (mySerial); //set softwareSerial for DFPlayer-mini mp3 module mp3_set_volume (10); // imposto il volume a 10 (max 30) } void loop() { statoPulsante = digitalRead(pulsante); if (statoPulsante == LOW) { // se premo il pulsante parte il loop o meglio il ciclo di fasi che dura 6 minuti circa dopo di che si ferma } else { mp3_play (1); // faccio partire il brano 1 digitalWrite(rele1, LOW); // ACQUA digitalWrite(rele2, LOW); // ANIMALI GROTTA digitalWrite(rele3, HIGH); // STATUE digitalWrite(rele4, LOW); // CASE analogWrite(LEDCAP, 5); // striscia led capanna for(int ValorePWMN = 0; ValorePWMN <= 255; ValorePWMN++){ //1sale notte analogWrite(LEDN, ValorePWMN); delay( ritardoV ); } delay(ritardo1); for(int ValorePWMA = 0; ValorePWMA <= 255; ValorePWMA++){ //2sale alba analogWrite(LEDA, ValorePWMA); delay(ritardoL); } for(int ValorePWMN = 255; ValorePWMN >= 0; ValorePWMN--){ //3scende notte analogWrite(LEDN, ValorePWMN); delay(ritardoV); } for(int ValorePWMG = 0; ValorePWMG <= 100; ValorePWMG++){ // 4sale giorno analogWrite(LEDG, ValorePWMG); delay( ritardoL ); } digitalWrite(rele3, LOW); // STATUE analogWrite(LEDCAP, 150); for(int ValorePWMG = 100; ValorePWMG <= 255; ValorePWMG++){ // 4sale giorno analogWrite(LEDG, ValorePWMG); delay( ritardoV ); } for(int ValorePWMA = 255; ValorePWMA >= 100; ValorePWMA--){// 5scende alba analogWrite(LEDA, ValorePWMA); delay( ritardoV ); digitalWrite(rele4,HIGH); // CASE } for(int ValorePWMA = 100; ValorePWMA >= 0; ValorePWMA--){// 5scende alba analogWrite(LEDA, ValorePWMA); delay( ritardoL ); } delay (ritardo2); for(int ValorePWMT = 0; ValorePWMT <= 100; ValorePWMT++){ //6sale tramonto analogWrite(LEDT, ValorePWMT); delay(ritardoL); digitalWrite(rele4,LOW); // CASE } for(int ValorePWMT = 100; ValorePWMT <= 255; ValorePWMT++){ //6sale tramonto analogWrite(LEDT, ValorePWMT); delay(ritardoV); } for(int ValorePWMG = 255; ValorePWMG >= 100; ValorePWMG--){ //7scende giorno analogWrite(LEDG, ValorePWMG); delay(ritardoV); digitalWrite(rele3, HIGH); // STATUE } analogWrite(LEDCAP, 5); for(int ValorePWMG = 100; ValorePWMG >= 0; ValorePWMG--){ //7scende giorno analogWrite(LEDG, ValorePWMG); delay(ritardoL); } for(int ValorePWMN = 0; ValorePWMN <= 100; ValorePWMN++){ // 8sale notte analogWrite(LEDN, ValorePWMN); delay( ritardoL); } for(int ValorePWMT = 255; ValorePWMT >= 0; ValorePWMT--){// 9scende tramonto analogWrite(LEDT, ValorePWMT); delay(ritardoV); } delay(ritardo2); for(int ValorePWMA = 0; ValorePWMA <= 100; ValorePWMA++){ //10sale alba analogWrite(LEDA, ValorePWMA); delay(ritardoL); } for(int ValorePWMA = 100; ValorePWMA <= 255; ValorePWMA++){ //10sale alba analogWrite(LEDA, ValorePWMA); delay(ritardoV); } for(int ValorePWMN = 255; ValorePWMN >= 100; ValorePWMN--){ //11scende notte analogWrite(LEDN, ValorePWMN); delay(ritardoV); } for(int ValorePWMN = 100; ValorePWMN >= 0; ValorePWMN--){ //11scende notte analogWrite(LEDN, ValorePWMN); delay(ritardoL); } for(int ValorePWMG = 0; ValorePWMG <= 100; ValorePWMG++){ // 12sale giorno analogWrite(LEDG, ValorePWMG); delay( ritardoL ); digitalWrite(rele3, LOW); // STATUE } analogWrite(LEDCAP, 150); for(int ValorePWMG = 100; ValorePWMG <= 255; ValorePWMG++){ // 12sale giorno analogWrite(LEDG, ValorePWMG); delay( ritardoV ); } for(int ValorePWMA = 255; ValorePWMA >= 0; ValorePWMA--){// 13scende alba analogWrite(LEDA, ValorePWMA); delay( ritardo ); digitalWrite(rele4,HIGH); // CASE } delay (ritardo2); for(int ValorePWMT = 0; ValorePWMT <= 100; ValorePWMT++){ //14sale tramonto analogWrite(LEDT, ValorePWMT); delay(ritardoL); digitalWrite(rele4,LOW); // CASE } for(int ValorePWMT = 100; ValorePWMT <= 255; ValorePWMT++){ //14sale tramonto analogWrite(LEDT, ValorePWMT); delay(ritardoV); } analogWrite(LEDCAP, 5); for(int ValorePWMG = 255; ValorePWMG >= 100; ValorePWMG--){ //15scende giorno analogWrite(LEDG, ValorePWMG); delay(ritardoL); digitalWrite(rele3, HIGH); // STATUE } for(int ValorePWMG = 100; ValorePWMG >= 0; ValorePWMG--){ //15scende giorno analogWrite(LEDG, ValorePWMG); delay(ritardoV); } for(int ValorePWMN = 0; ValorePWMN <= 100; ValorePWMN++){ // 16sale notte analogWrite(LEDN, ValorePWMN); delay( ritardoL); } for(int ValorePWMN = 100; ValorePWMN <= 255; ValorePWMN++){ // 16sale notte analogWrite(LEDN, ValorePWMN); delay( ritardoV); } for(int ValorePWMT = 255; ValorePWMT >= 0; ValorePWMT--){// 17scende tramonto analogWrite(LEDT, ValorePWMT); delay(ritardo); } delay (ritardo1); for(int ValorePWMN = 255; ValorePWMN >= 0; ValorePWMN--){// 18scende notte analogWrite(LEDN, ValorePWMN); delay(ritardo); } digitalWrite(rele1, HIGH); // ACQUA digitalWrite(rele2, HIGH); // ANIMALI GROTTA digitalWrite(rele3, HIGH); // STATUE digitalWrite(rele4, HIGH); // CASE analogWrite(LEDCAP, 0); mp3_stop (); } }